package com.yunhe.device.service.base;

import org.springframework.transaction.annotation.Transactional;

/**
 * @ClassName ISerialNumService
 * @Description TODO
 * @Author HeTao
 * @Date 2021/2/24 14:26
 * @Version 1.0
 **/
public interface SerialNumService {


    @Transactional(rollbackFor = Exception.class, transactionManager = "transactionManager")
    public String generateSerialNumberByModelCode(String moduleCode);

    /**
     * 设置最小值
     * @param value 最小值，要求：大于等于零
     * @return      流水号生成器实例
     */
    SerialNumService setMin(int value);

    /**
     * 设置最大值
     * @param value 最大值，要求：小于等于Long.MAX_VALUE ( 9223372036854775807 )
     * @return      流水号生成器实例
     */
    SerialNumService setMax(long value);

    /**
     * 设置预生成流水号数量
     * @param count 预生成数量
     * @return      流水号生成器实例
     */
    SerialNumService setPrepare(int count);
}
